Computer programmable remote control

ABSTRACT

A portable hand-held remote control unit device is disclosed which may be utilized for selecting designated functions in a plurality of remotely controllable multimedia processing units. Multiple user selectable screen objects may be created from a general purpose computer and transferred to the remote control unit. The screen objects include screen layout and descriptions of soft keys to be displayed on a graphic display of the remote control unit, as well as commands associated with the screen object, the soft keys and programmable keys on the remote control unit. The user may select any of the loaded screen objects for controlling various multimedia processing units, for performing complex functions of commands to various multimedia processing units.

RELATED APPLICATION INFORMATION

This application is a continuation-in-part of application Ser. No.60/051,848 filed Jul. 7, 1997, now expired, entitled “ComputerProgrammable Remote Control System,” which is incorporated herein byreference.

NOTICE OF COPYRIGHTS AND TRADE DRESS

A portion of the disclosure of this patent document contains materialwhich is subject to copyright protection. This patent document may showand/or describe matter which is or may become trade dress of the owner.The copyright and trade dress owner has no objection to the facsimilereproduction by anyone of the patent disclosure, as it appears in thePatent and Trademark Office patent files or records, but otherwisereserves all copyright and trade dress rights whatsoever.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates generally to remote control devices forelectronics products.

2. Description of Related Art

The modern home may have a wide array of consumer electronics devices.These may include nearly any type of audio or video entertainmentproduct, such as televisions, video cassette recorders, audio cassetterecorders, audio/video receivers and preamps, cable boxes, laser discplayers and camcorders.

Consumer electronics devices typically utilize hand-held remote controlunits to permit a user to rapidly and efficiently control selectedfunctions from a distance. Early mechanical/ultrasonic remote controlunits were fairly limited and generally permitted only one or twofunctions to be controlled. For example, television remote control unitsutilizing mechanical/ultrasonic technology generally permitted a user toturn the power on to the television and to cycle through each channel ina preselected rotation. For some time, remote control units have beenavailable which transmit control signals by way of infrared or radiofrequency transmitters. These wireless remote control units have freedthe user to move about a room or even about their home and to controlthe device from wherever it is most convenient to the user.

Consumer electronics devices and systems have become very complex andloaded with functionality. Particularly, with the expanding use ofmicroprocessor-based devices and the ability to interconnect audiosystems, video systems, security system, home automation systems andpersonal computers, the possible ways to interconnect and operate devicehas grown significantly. Remote control units have correspondinglybecome highly complex. A number of manufacturers sell remote controlunits which include as many as one hundred small buttons or keys,resulting in a severe decrease in the usability of these devices. Thisis remarkable, considering the huge number of consumers who cannot setthe time on their VCR. Furthermore, the number and complexity of remotecontrol units typically found in a home have reached a level where theconvenience provided by the remote control units is often overcome bythe difficulty in locating and operating them.

Thus, several problems have arisen. First, there is the problem of howto allow the user to control a huge number of features from a remotecontrol unit. Second, there is the problem of how to avoid overwhelmingthe user with controls on a remote control unit which the user willnever use. Third, there is the problem of users having to deal withmultiple remote control units with overlapping operability. Fourth,there is the problem of the considerable amount of space which anaggregation of remote control units often occupy.

One solution which has found some acceptance in the market is theuniversal remote control unit. A universal remote control unitconsolidates multiple remote control units and, it is hoped, improvestheir usability. Typical universal remote control units can learn thecommands of other Remote control units, either through pre-programmedlists of consumer electronics devices or by teaching the universalremote control unit each command which the user might wish to haveavailable on the universal Remote control unit. One of the problems withuniversal remote control units has been that their generic keypads areoften cumbersome and not particularly intuitive in layout or labeling.Furthermore, the designers of these devices must compromise betweenhaving separate buttons for each possible command and small buttonsizes.

With the advent of home theater systems, the complexity of controls hasadvanced to an even greater plateau. Now, the remote must not onlycontrol the TV, the VCR, the cable box and the stereo, it must be ableto control the surround sound quality, turn on multiple devices at thesame time, and issue a series of commands to multiple devices toaccomplish a single task. Naturally, the consumer electronics industryhas developed products to serve this new need in the marketplace. Thesemore advanced universal remote control units are exemplified by the HomeProducer 8 from Universal Electronics, Inc. (Tustin, Calif.), the RC2000 from Marantz (Roselle, Ill.), the RR990 from Rotel (North Reading,Mass.), and the RC-R0905 from Kenwood.

There has also been an increasing desire to integrate consumerelectronics with security systems and to provide some control from aremote control unit of the home environment. For example, it isdesirable that, when a user wishes to watch a cable program, not only isthe TV set powered on and set to receive the video input, the A/Vreceiver is powered on and set to play the cable program at a reasonableloudness, the cable decoder is powered on and set to a favorite channel,but also the room's lighting is dimmed, the air conditioner is set to acomfortable level and the home security system is armed againstperimeter violations. Some products (not necessarily Remote controlunits) are available which can be programmed to do these kinds ofthings. These products include the HAS-1350 Home Vision Intelligent HomeController available from Home Automation Systems, Inc. (Irvine,Calif.), the ISR TronArch Intelligent Home Automation System, theBrightTouch from Crestron, the TheaterLink from Vantage, and theLandmark System from PHAST, the IntelliControl from Niles, and the 700Tfrom Lexicon.

One of the common problems with universal remote control units, and aproblem which is especially severe with the most flexible andprogrammable remote control units, is programming. A universal remotecontrol unit simply cannot be factory-programmed with every possibleconfiguration. The user is left with poor choices—do without somefunctions, spend many hours programming and reprogramming theirprogrammable remote control unit, suffer through a remote control unitwhich is not programmed in a memorable manner, or paying a professionalto program the remote control unit. Despite the availability ofprogrammable remote control units, the best remote control unit for amultimedia processing unit is usually the one which is provided with amultimedia processing unit. It is very difficult to overcome thisone-to-one correspondence of remote control units and multimediaprocessing units. These problems have resulted in the marketplacelargely rejecting the more advanced universal remote control units.

SUMMARY OF THE INVENTION

The previously described problems are solved in a remote control unitwhich has the ability to control nearly any device controllable from aremote, yet is easily programmed. These benefits are obtained from aremote control unit which is programmable from a PC using an advanced,object-oriented user interface. The remote control unit's programming iseasily modified from the PC. The user may quickly and easily build afull range of capabilities into the remote control unit, including theissuance of multiple commands with a single key press. Furthermore,because the remote control unit has a large memory, the user may focuson functionality, rather than the efficiency or compactness of theprograms.

The present invention, together with additional features and advantagesthereof, may best be understood by reference to the followingdescription taken in connection with the accompanying illustrativedrawings.

DESCRIPTION OF THE DRAWINGS

Further objects of this invention, together with additional featurescontributing thereto and advantages accruing therefrom, will be apparentfrom the following description of a preferred embodiment of the presentinvention which is shown in the accompanying drawings with likereference numerals indicating corresponding parts throughout and whichis to be read in conjunction with the following drawings, wherein:

FIG. 1 is a block diagram showing a PC, a programmable remote control inaccordance with the invention and multimedia processing units.

FIG. 2A is a frontal plan view of a prior art programmed remote controlunit.

FIG. 2B is a frontal plan view of a programmable remote control unit inaccordance with the invention.

FIG. 3 is a screen shot of a selection screen of a remote controldevelopment program in accordance with the invention.

FIG. 4 is a screen shot of name entry screen of a remote controldevelopment program in accordance with the invention.

FIG. 5 is a screen shot of a command learning screen of a remote controldevelopment program in accordance with the invention.

FIG. 6 is a screen shot of another command learning screen of a remotecontrol development program in accordance with the invention.

FIG. 7 is a screen shot of a screen object layout screen of a remotecontrol development program in accordance with the invention.

FIG. 8 is a partial perspective view of a docked programmable remotecontrol unit in accordance with the invention.

FIG. 9 is a screen shot of a screen object layout screen of a remotecontrol development program having commands for multiple multimediaprocessing units in accordance with the invention.

FIG. 10 is a screen shot of a custom screen object creation screen of aremote control development program in accordance with the invention.

FIG. 11 is a screen shot of another custom screen object creation screenof a remote control development program in accordance with theinvention.

FIG. 12 is a flowchart of a method of programming a programmable remotecontrol unit in accordance with the invention.

These and additional embodiments of the invention may now be betterunderstood by turning to the following detailed description wherein anillustrated embodiment is described.

DETAILED DESCRIPTION OF THE INVENTION

Throughout this description, the preferred embodiment and examples shownshould be considered as exemplars, rather than limitations on theapparatus and methods of the present invention.

The Components of the System

Referring now to FIG. 1, there is shown a block diagram of a generalpurpose computer 100, a programmable remote control unit 200, a dockingstation 130 and a multimedia processing unit 300. By “multimediaprocessing unit” it is meant a device which provides some functionalitywhich an end user can recognize and appreciate. Most TVs, VCRs, stereoreceivers, CD players, laser disk players and cable decoders areself-contained multimedia processing units. Many security systems andhome automation systems are dispersed multimedia processing units. By“remote control unit” it is meant a hand-held, portable device which canbe used by a user to issue commands to a multimedia processing unitwhich the multimedia processing unit will recognize and result in apredetermined change of performance by the multimedia processing unit.By “programmed remote control unit” it is meant a remote control unitwhich has a fixed set of commands which it can issue and which commandsare permanently assigned to specific keys on the remote control unit.Most multimedia processing units are provided with a programmed remotecontrol unit which is programmed with all of the commands the multimediaprocessing unit's engineers believed desirable. By “programmable remotecontrol unit” it is meant a remote control unit which can be programmedwith the commands needed to control an multimedia processing unit. By“command” it is meant a message which can be recognized by a multimediaprocessing unit as an instruction to change a particular setting of themultimedia processing unit.

The multimedia processing unit 300 includes a receiver 310 through whichthe multimedia processing unit may receive commands.

The general purpose computer 100 includes a processor 155 whichpreferably from Intel Corporation (San Jose, Calif.) and runs aMicrosoft Corporation (Redmond, Wash.) Windows operating system. Inconjunction with the processor 155, the general purpose computer 100 hasa short term memory 150 (preferably RAM) and a long term memory 180(preferably a hard disk) as known in the art. The general purposecomputer 100 further includes a graphics display 105, a user inputdevice preferably comprising a keyboard 120a and mouse 120b, an IOinterface 115, a power supply 125 and a bus 110 as known in the art.From the user's perspective, the docking station 130 once connected tothe general purpose computer 100 is a component of the general purposecomputer 100.

The programmable remote control unit 200 includes a processor 260 andpreferably runs Microsoft Corporation's (Redmond, Wash.) Windows CEoperating system. In conjunction with the processor 260, theprogrammable remote control unit 200 has a short term memory 270 and along term memory 250 as known in the art. The processor 260 ispreferably a microprocessor, but may be an ASIC, logic processor orother type of processor which can operate in accordance with a program.The long term memory 250 is preferably comprised of EEPROM, but may alsobe a magnetic disk drive, an optical disk drive, and MO disk drive,NVRAM, SRAM, chemical storage device or other type of rewritable,non-volatile memory. The short term memory 270 is preferably a RAM. Theprogrammable remote control unit 200 further includes a bus 210, an I/Oprocessor 230, a power management unit 280 and a battery 285, all asknown in the art.

For interfacing with a user, the programmable remote control unit 200further includes a panel 220. The panel 220 comprises various user inputdevices 222, 223, 224 and a graphic display 221. The graphic display 221may be an LCD panel, an LED panel, a holographic projection, a cathoderay tube or other compact display device which can display graphics. Theuser input devices preferably include fixed keys 224, programmable keys223 and a touch screen overlay 222.

The programmable keys 223 and fixed keys 224 may be comprised ofbuttons—mechanical, electromechanical or solid state. As shown in FIG.2B, there are preferably four programmable keys 223a, 223b, 223c, 223ddisposed in a cross-like shape. Though programmable, the programmablekeys 223 preferably are programmed with consistent functions, namely,that key 223a is for increasing speaker volume, key 223b is for changingchannels in an upward direction, key 223c is for decreasing speakervolume, and key 223d is for changing channels in a downward direction.As explained further below, programs for controlling multimediaprocessing units preferably include these assignments.

The fixed keys 224 have functions which cannot be changed. The fixedkeys 224 preferably include a key 224a for toggling a back light on thedisplay 221, keys 224b, 224c for scrolling to the next and previousscreen, and a power key 224d.

The touch screen overlay 222, in conjunction with the graphic display221, allows the programmable remote control unit 200 to be programmedwith soft keys.

For interfacing with the multimedia processing unit 300 and the generalpurpose computer 100, the programmable remote control unit 200 includesa communications transceiver 235. The communications transceiver 235 maybe electro mechanical, but is preferably wireless and conforms to theIrDA specification and consumer IR standards, and also includes aninfrared transceiver and an RF transceiver which permit the programmableremote control unit 200 to control a wide range of multimedia processingunits. Alternatively, the functions of communicating with the generalpurpose computer 100 and the multimedia precessing unit may be embodiedas separate units.

The docking station 130 preferably comprises a cup-like unit into whichthe programmable remote control unit 200 may be inserted and which has ashape adapted to receive and firmly hold the programmable remote controlunit 200. FIG. 8 shows the programmable remote control unit 200 insertedinto the docking station 130. When the programmable remote control unit200 is inserted into the docking station 130, the programmable remotecontrol unit's communications transceiver 235 is in registration with acorresponding communications transceiver 135 in the docking station 130.The docking station 130 is coupleable to the I/O interface 115 of thegeneral purpose computer 100, preferably in conformance with aninterface standard which is common, bidirectional and inexpensive, suchas serial or USB.

As an alternative to the docking station 350, the communicationstransceiver 235 of the programmable remote control unit 200 may includea USB port or similar means which can be connected directly to a USBport in the general purpose computer 100.

The communications transceiver 135 of the docking station preferablyincludes an infrared receiver and an RF receiver which permit thedocking station 130 to recognize the commands which are recognized by awide range of multimedia processing units.

The Method of the Invention

Methods of the invention includes a learning phase, a development phase,a transfer phase and a use phase. The description of these phases isaccompanied by an example of how the commands issued from a prior artprogrammed remote control unit 200A shown in FIG. 2A maybe programmedand used by the programmable remote control unit 200 of FIG. 2B.

The exemplary programmed remote control unit 200A is of a common varietyfor controlling a television, which is the multimedia processing unit ofthe example. Similar programmed remote control units are provided withother multimedia processing units, such as cable boxes. The programmedremote control unit 200A includes a number of keys, each resulting in adesignated command as shown in Table I below. Typical TVs generate anappropriate display when a key is pressed and the TV recognizes thecommand. Other multimedia processing units also have similarcapabilities, though this is not described further herein.

TABLE I Label Reference Command mute 220A toggle the TV's speaker on andoff power 230A toggle power to the TV on and off enter 275A after one ormore numbers keys has been pressed, cause the TV to recognize thecorresponding entered number 1 201A enter the number 1 2 202A enter thenumber 2 3 203A enter the number 3 4 204A enter the number 4 5 205Aenter the number 5 6 206A enter the number 6 7 207A enter the number 7 8208A enter the number 8 9 209A enter the number 9 0 210A enter thenumber 0 ch− 260A change the displayed TV station to the station nextlower in a predefined order ch+ 265A change the displayed TV station tothe station next higher in the predefined order display 250A toggle aninformation display of such things as currently tuned station, volume,and the time vol− 270A decrease the speaker volume by a predeterminedamount vol+ 275A increase the speaker volume by a predetermined amount

In setting up the system of the invention, the user first connects thedocking station 130 to the general purpose computer 100. Preferably, thedocking station 130 includes a serial communications cable which may beconnected to an open serial port of the I/O interface 115, or a USBcable which may be connected to an open USB port. The user then installsremote control development software on the hard drive 180. The remotecontrol development software preferably detects the docking station 130and determines if the docking station 130 is working correctly. Next, aconfiguration wizard prompts the user to insert the programmable remotecontrol unit 200 into the docking station 130 and begin the learningphase.

Learning Phase

Referring now to FIG. 12, a method of programming the programmableremote control unit 200 is described and is accompanied with adescription of an exemplary embodiment. The remote control developmentsoftware preferably uses Active X objects technology.

The remote control development software provides the user with theability to create, edit, delete and download to the programmable remotecontrol unit 200 one or more “screen objects.” A screen object comprisesa screen layout definition, soft key objects and programmable keyobjects, altogether which provide for a single screen which occupies thedisplay 222 and the commands associated therewith. A “soft key object”comprises a graphic or pointer to a graphic representing a soft keywhich will be displayed on the display 221, a text label for thegraphic, a location on the display 221 for the graphic, and a tagnamefor command which the programmable remote control unit 200 will issuewhen the soft key is pressed by the user. A “programmable key object”preferably comprises an identifier of one of the programmable keys 223and a tagname for a command which the programmable remote control unit200 will issue when the identified programmable key 223 is pressed bythe user.

The remote control development software preferably stores screen objectsin a database. The remote control development software preferably isprovided with a number of preconfigured screen objects, and duringinstallation of the remote control development software, a database ofthe preconfigured screen objects is preferably created. Preconfiguredscreen objects provide a short cut to programming the programmableremote control unit 200, and may be used as templates in the developmentphase, discussed below. The preconfigured screen objects can come froman image table or dynamically created by software based uponfunctionality of the remote and its purpose. The database preferably candifferentiate preconfigured screen objects from custom screen objects,and deter the user from editing them.

The publisher of the remote control development software preferablymakes available new preconfigured screen objects as new multimediaprocessing units are put on the market to further increase theease-of-programming of the programmable remote control unit of theinvention. The preconfigured screen objects may also be obtained in theaftermarket from third parties, such as the vendors of multimediaprocessing units.

In the learning phase, the commands for the multimedia processing unit300 are obtained by the remote control development software and used toprepare a screen object corresponding to the programmed remote controlunit 200A of the multimedia processing unit 300. It should beappreciated, however, that the remote control development software canbe used to learn commands from multipurpose, universal and programmableremote control units as well as single-purpose programmed remote controlunits as shown in the example.

In step 1210, the user starts the remote control development softwareand activates the wizard for learning the commands for a multimediaprocessing unit. A screen 300 such as that shown in FIG. 3 is preferablydisplayed on the display 105 of the general purpose computer 100. Thisscreen 300 displays the beginning point of the learning wizard. Thescreen 300, as well as the other screens described herein, conform tothe Windows95 (or later) user interface which is well known in the art.A menu bar 310 shows several commands which a user may select.

The screen 300 includes a prominent dialog 320. The dialog 320 includesdescriptive text and a list of multimedia processing unit types 325. Thedialog 320 also includes a Cancel button 322 and a Help 323 which willbe self-evident to those of skill in the art, as well as a Look Upbutton 324 and a Learn button 325. A row of radio buttons 321 isprovided to permit the user to select the multimedia processing unittype, and there is preferably a free-form field 326 as well. In step1230, the user selects one of the displayed multimedia processing unittypes or enters a free-form name. As shown further below, the multimediaprocessing unit type selected here, or the name entered in field 326,will be used by the remote control development software as a prefix namefor the screen object and for the tagnames for the commands in thescreen object.

After the user has selected the multimedia processing unit type, thecommands of the multimedia processing unit 300 are learned. If the userclicks on the Look Up button 324 (step 1290), the remote controldevelopment software allows the user to select the multimediaprogramming unit from the database of screen objects (step 1295).Accordingly, the remote control development software displays a list ofpreconfigured screen objects, sorted or limited according tocharacteristics such as multimedia processing unit type, manufacturer,and date of manufacture. The user may then select one of thepreconfigured screen objects, and learning of the commands of themultimedia processing unit 300 is complete (step 1280).

If the user clicks on the Learn button, the individual keys of theprogrammed remote control 200A will be learned (steps 1240-1265). Inthis regard for example, the remote control development softwaredisplays a dialog 420 as shown in FIG. 4. The dialog 420 includes thebuttons 322, 323 as well as a Back button 424 and a Next button 425.

The user now enters the name of the multimedia processing unit 300 whosecommands are to be learned (step 1240). Dialog 420 includes a prompt 425and a data entry field 435 where the user enters the name of themultimedia processing unit 300. The remote control development softwarepreferably provides a default name for the multimedia processing unit300 in the field 435. This default name preferably comprises the type ofmultimedia processing unit selected in step 1210, plus a sequentialnumber for each multimedia processing unit of the type learned. Theremote control development software also preferably utilizes themultimedia processing unit type in the prompt 425.

Preferably, remote control development software is intelligent enough tosave the user from teaching every key of the programmed remote controlunit 200A. In this regard, after the user teaches the remote controldevelopment software each new key, the remote control developmentsoftware attempts to correlate the learned key commands against those inthe database, and to select the multimedia processing unit which appearsto be that being taught.

In another convenient aspect, the remote control development softwarepreferably includes, for each multimedia processing unit type, a list ofcommand types which that type of multimedia processing unit normallywill recognize. For example, all typical TVs recognize commands forpower control, volume control, and number keys, and all typical VCRsrecognize commands for play, stop, pause, rewind and fast forward. Whenlearning keys of the programmed remote control 200A, the remote controldevelopment software preferably asks the user to teach commands ofexpect command types first, and then, if no match in the database hasbeen found, then non-standard commands.

After the user clicks on the Next button 425, a dialog 520 as shown inFIG. 5 is displayed. From this screen, the remote control developmentsoftware learns a number of expected command types of the multimediaprocessing unit. Accordingly, the remote control development softwaredisplays a prompt 525 in the dialog 520 for the user to aim theprogrammed remote control unit 200A that came with the multimediaprocessing unit 300 at the communications transceiver 135 of the dockingstation 130, and to press the expected keys on the programmed remotecontrol unit 200A. After the remote control development softwarerecognizes each key press and records the command from the programmedremote control unit 200A (step 1250), the remote control developmentsoftware displays a next expected key, until all of the expected keyshave been learned (step 1255). Preferably, after the remote controldevelopment software learns each new expected command, it test thelearned commands against those of the screen objects in the database. Ifa match is found, then the user is given the opportunity to accept thematch found by the remote control development software or to continueteaching.

After the user clicks on the Next button 425, a dialog 620 as shown inFIG. 6 is displayed. In this step 1260, the remote control developmentsoftware learns a non-standard commands of the multimedia processingunit 300. Accordingly, the remote control development software displaysa prompt 625 in the dialog 620 for the user to enter the name of thenon-standard key in an entry field 626 and to aim the programmed remotecontrol unit 200A at the transceiver 135 of the docking station 130, andto press the named key on the programmed remote control unit 200A. Afterthe remote control development software recognizes each key press andrecords the command from the programmed remote control unit 200A, theremote control development software displays the same dialog 620 untilall of the non-standard keys have been learned (step 1265).

If the remote control development software has identified the user'smultimedia processing unit and selected the corresponding preconfiguredscreen object, the remote control development software preferably showsa representation of the screen object as exemplified by the screen shotof FIG. 7. FIG. 7 shows the menu bar 310 mentioned above, plus a leftpane 710 and a right pane 720.

The right pane 720 shows a representation 726 of the programmable remotecontrol unit 200, with a representation 721 of the appearance of thescreen object in the programmable remote control unit's display 221, theprogrammable keys 723 and the fixed keys 724. The representation 721includes the multimedia processing unit's name 766 as entered by theuser in step 1240. The representation 721 also includes soft keys 722corresponding to the keys 201A-275A of the multimedia processing unit'sprogrammed remote 200A (FIG. 2A). The representation 721 preferablyprecisely mimics the key sizes and locations of the multimediaprocessing unit's programmed remote control unit 200A.

The left pane 710 is a display of screen object information. The leftpane 710 shows the screen object's name 711, plus a list 712 of tagnamesof the commands in the screen object. Those of skill in the art willappreciate the correspondence between the tagnames 712 of commands, thesoft keys 722 and commands. For preconfigured screen objects,programmable key objects for controlling speaker volume and channelrotation are preferably also mapped to the programmable keys 723/223 asdiscussed above. Soft key objects may include these mappings.

The left pane 710 preferably is for displaying information about allavailable screen objects. This display is preferably hierarchical, and auser may toggle the display of the component objects of a screen objectby clicking on a ‘+’ (to display) or ‘−’ (to hide) to the tagnames 712.A scroll bar 715 allows the user to scroll through the list of screenobjects and their respective components (if displayed).

The right pane 720 preferably is for displaying all available screenobject representations. A scroll bar 725 allows the user to scrollthrough the screen object representations.

In the case where the user is teaching the remote control developmentsoftware the commands of a multimedia processing unit for which theremote control development software lacks a preconfigured screen object,the user will need to create the screen object's layout manually. Thisis performed in the Development Phase. The user may also modify editscreen objects and even create new screen objects by copying layoutinformation, soft key objects and programmable key objects from existingscreen objects.

Development Phase

In the development phase, a user may add, edit, delete or reorder screenobjects. Each of these functions preferably may be activated by the userfrom a Tools menu 920 as shown in FIG. 9. There are preferably alsoshort-cut keys or tool bar buttons for accessing this feature in themanner known in the art.

As shown in FIG. 9, the remote control development software isdisplaying in the left pane 710 not only the screen object informationof the TV multimedia processing unit described above, but also screenobject information of a cable box multimedia processing unit. Althoughnot shown in FIG. 9, a representation of the cable box's screen objectis also available in the right pane 720 and can be displayed using thescroll bar 725.

If a new screen object is to be created, the user selects an Add Screencommand 941 from the Tools menu 940. As shown in FIG. 10, the remotecontrol development software then creates a new screen object with thetitle Custom 1066, and a representation 1026 of the programmable remotecontrol unit 200 in the right pane 720 with only a title 1066.

The remote control development software preferably provides drag anddrop tools for the user to create and edit the screen object, anddisplays a tool box 1050 having a number of object creating and editingtools for the user to use. For example, the user could create a new softkey object by dragging a button tool 1052 to the display area 721 of therepresentation 726 of the programmable remote control unit 200. A mousecursor 1260 is shown in FIG. 12 dragging a graphic of a button 1265 forthe soft key object. The remote control development software preferablyprovides other object-oriented editing controls as known in the art.These controls permit the user to modify the shape and location of softkeys, edit the commands associated with soft keys and programmable keys,change text labels, and otherwise edit the appearance of the screenobject.

The soft key objects and programmable key objects preferably may includemore than one command. Tagnames may be dragged from the left pane 710and dropped onto representations of the desired object in the right pane720. Preferably, if the user moves the mouse cursor 1060 over therepresentation of an object in the right pane 720, the remote controldevelopment software displays the commands associated with thatrepresentation. By double-clicking on the representation of the object,an edit window is preferably displayed so that the order of tagnames maybe rearranged and sequence controls, such as if-else and for-nextstructures, may be inserted. Preferably, a user may assign commands to ascreen object directly, so that when the screen object is selected fromthe programmable remote control unit 200, the commands assigned to thescreen object directly are automatically issued by the programmableremote control unit 200.

Referring now to FIG. 11, there is shown a screen shot wherein of anexemplary custom screen object. This screen object is entitled “Dad”1166 and was created for the father of a household. The title 1166 isshown both in the left pane 710 and in the right pane 720 as 1111. TheDad screen object has two soft key objects and corresponding soft keys1161, 1162. The Dad screen object also has four programmable key objectsin the manner previously described whose tagnames 1114 are shown in theleft pane 710. Below the title 1166, there are no tagnames. This isbecause all of the commands of the Dad screen object are drawn fromother screen objects.

This screen object demonstrates one of the significant benefits of thesystem and method of the invention. The soft key object 1161 has beenprogrammed with a series of commands for turning on the TV and cablebox, then tuning the TV to receive from the cable box, then tuning thecable box to Dad's favorite cable channel, ESPN. The soft key object1162 has been programmed with a series of commands for turning on thestereo receiver, then tuning the stereo receiver to Dad's favorite radiostation, KTWY.

Transfer Phase

After the user is satisfied with his screen objects, he then downloadsthem from the general purpose computer 100 to the programmable remotecontrol unit 200. The first step in this process is for the user toinsert the programmable remote control unit 200 into the docking station130, as shown in FIG. 8. Once docked, software in the programmableremote control unit 200 and general purpose computer 100 logicallyconnect the devices and test the connection.

Next, the user uses the general purpose computer 100 to select thescreen objects stored in the database to be downloaded, and the useractivates a download command from the general purpose computer 100. Asshown by example in FIG. 7, the user selects a Download command 741 froma Connect menu 740 on the menu bar 310. The Connect menu 740 preferablyalso includes commands for testing the connection between the generalpurpose computer 100 and the programmable remote control unit 200, andfor checking on the status of the connection. There are preferably alsoshort-cut keys or tool bar buttons for accessing these features in themanner known in the art. Screen objects preferably may be downloadedindividually or in groups.

Once the programmable remote control unit 200 is loaded with screenobjects, the programmable remote control unit 200 may be removed fromthe docking station 130 and is ready for use to control the multimediaprocessing unit 300.

It should be appreciated that the general purpose computer 100 may beused to create and edit screen objects apart from any remote controlunits and without having the programmable remote control unit 200 in thedocking station 130.

Use Phase

Once loaded with screen objects, the programmable remote control unit200 is ready for use. When powered on, the programmable remote control200 unit preferably automatically loads one of the stored screenobjects. The user may scroll through loaded screen objects using thefixed keys 224b, 224c. The programmable remote control unit 200generates displays of soft keys and other features of the screen objecton the display 221, and generates the commands of the soft key objectsand programmable key objects when the corresponding soft keys orprogrammable keys are pressed.

Although exemplary embodiments of the present invention have been shownand described, it will be apparent to those having ordinary skill in theart that a number of changes, modifications, or alterations to theinvention as described herein may be made, none of which depart from thespirit of the present invention. All such changes, modifications andalterations should therefore be seen as within the scope of the presentinvention.

1. A remote control development program comprising a set of instructionson a computer-readable medium, the instructions configured to cause ageneral purpose computer to provide a user with the ability to edit afirst screen object; the general purpose computer comprising aprocessor, an operating system, a short term memory, a long term memory,a graphics display and a user input device, the screen objects eachcomprising a screen layout definition and at least one key object whichis a soft key object or a programmable key object, the screen objectproviding for a screen display and commands associated therewith,wherein each soft key object comprises a representation of a soft key, atext label for the representation, a location for displaying the graphicsoft key object, and a tagname for a command which is to be issued whenthe soft key is pressed, each programmable key object comprises anidentifier of one of plural programmable keys of a programmable remotecontrol unit and a tagname for a command which is to be issued when theidentified programmable key is pressed, each command comprises a messagewhich, when received by a given multimedia processing unit, causes themultimedia processing unit to alter a defined setting of the multimediaprocessing unit in a predictable manner; the remote control developmentprogram further comprising instructions for causing a computer tofacilitate editing of the first screen object by performing thefollowing steps: (a) displaying a representation of the appearance ofthe first screen object; (b) simultaneously displaying informationregarding the first screen object and the key objects of the firstscreen object; (c) providing objected object oriented tools for creatingand editing soft key objects; (d) providing objected object orientedtools for creating and editing labels; (e) displaying tagnames forcommands which may be assigned to soft key objects in the first screenobject, programmable key objects in the first screen object, anddirectly to the first screen object; (f) receiving the user's selectionsof commands to assign to soft key objects in the first screen object,programmable key objects in the first screen object, and directly to thefirst screen object.
 2. The remote control development program embodiedon a computer readable medium of claim 1, the remote control developmentprogram further comprising instructions for causing the general purposecomputer to: download the first screen object to a programmable remotecontrol unit that is communicatively connected to the general purposecomputer.
 3. The remote control development program of claim 1,additionally comprising, the instructions further configured to cause ageneral purpose computer to provide a user with the ability to transferthe first screen object to programmable remote control unit.
 4. Theremote control development program of claim 3, wherein the instructionsfurther configured to cause a general purpose computer to provide a userwith the ability to transfer the first screen object to programmableremote control unit via a docking station that couples to theprogrammable remote control unit.
 5. The remote control developmentprogram of claim 3, wherein each soft key comprises a representation ofa soft key that will be displayed on the programmable remote controlunit.
 6. The remote control development program of claim 1, wherein theinstructions are configured to cause the general purpose computer toaccess one or more preconfigured screen objects.
 7. The remote controldevelopment program of claim 6, wherein the preconfigured screen objectsare stored in a database of the general purpose computer.
 8. The remotecontrol development program of claim 1, wherein the instructions furthercause a computer to facilitate editing of the first screen object byallowing the user to edit the tagnames for commands that are assigned tothe soft key objects.
 9. A method of editing one or more screen objectsfor downloading to a programmable remote control unit using a generalpurpose computer, the general purpose computer comprising a processor,an operating system, a short term memory, a long term memory, a graphicsdisplay and a user input device, the screen objects each comprising ascreen layout definition and at least one key object which is a soft keyobject or a programmable key object, the screen object providing for ascreen display and commands associated therewith, wherein each soft keyobject comprises a representation of a soft key, a text label for therepresentation, a location for displaying the graphic soft key object,and a tagname for a command which is to be issued when the soft key ispressed, each programmable key object comprises an identifier of one ofplural programmable keys of a programmable remote control unit and atagname for a command which is to be issued when the identifiedprogrammable key is pressed, each command comprises a message which,when received by a given multimedia processing unit, causes themultimedia processing unit to alter a defined setting of the multimediaprocessing unit in a predictable manner; the method comprising: (a) thegeneral purpose computer displaying a representation of the appearanceof the first screen object; (b) the general purpose computersimultaneously displaying information regarding the first screen objectand the key objects of the first screen object; (c) the general purposecomputer providing objected object oriented tools for creating andediting soft key objects; (d) the general purpose computer providingobjected oriented orient tools for creating and editing labels; (e) thegeneral purpose computer displaying tagnames for commands which may beassigned to soft key objects in the first screen object, programmablekey objects in the first screen object, and directly to the first screenobject; (f) the general purpose computer receiving the user's selectionsof commands to assign to soft key objects in the first screen object,programmable key objects in the first screen object, and directly to thefirst screen object.
 10. The method of claim 9, additionally comprisingthe general purpose computer downloading the screen object to theprogrammable remote control unit.
 11. The method of claim 9,additionally comprising the general purpose computer accessing the firstscreen object from one or more preconfigured screen objects from adatabase.
 12. The method of claim 10, wherein the general purposecomputer downloads the first screen object to the programmable remotecontrol unit via a docking station that communicatively couples to theprogrammable remote control unit.
 13. A remote control developmentprogram for use in connection with a general purpose computer comprisinga processor, an operating system, a short term memory, a long termmemory, a graphics display and a user input device, the remote controldevelopment program comprising: a set of instructions on acomputer-readable medium, the instructions configured to cause thegeneral purpose computer to provide a user with the ability to edit ascreen object comprising a screen layout definition and at least one keyobject which is a soft key object, the screen object providing for ascreen display and commands associated therewith wherein each soft keyobject comprises a representation of a soft key, a location fordisplaying the representation of the soft key, and a tagname for acommand which is to be issued when the soft key is activated, thecommand comprising a message which, when received by a given multimediaprocessing unit, causes the multimedia processing unit to alter adefined setting of the multimedia processing unit in a predictablemanner; and wherein the instructions are further configured to cause thegeneral purpose computer to: (a) display a representation of theappearance of the screen object; (b) display information regarding thescreen object and the key objects of the screen object; (c) accept userinput via object oriented tools for creating and editing soft keyobjects; (d) display tagnames for commands which may be assigned to softkey objects in the screen object; and (e) accept user selections ofcommands to assign to soft key objects in the screen object.
 14. Theremote control development program of claim 13, wherein the at least onekey object further comprises a programmable key object, the programmablekey object comprising an identifier of one of plural programmable keysof a programmable remote control unit and a tagname for a command whichis to be issued when the identified programmable key is activated andwherein the instructions are further configured to cause the generalpurpose computer to display tagnames for commands which may be assignedto programmable key objects in the screen object and accept userselections of commands to assign to programmable key objects in thescreen object.
 15. The remote control development program of claim 13,wherein the instructions are further configured to cause the generalpurpose computer to simultaneously display information regarding thescreen object and the key objects of the screen object.
 16. The remotecontrol development program of claim 13, wherein the instructions arefurther configured to cause the general purpose computer to download thescreen object to a programmable remote control unit that iscommunicatively connected to the general purpose computer.
 17. Theremote control development program of claim 13, wherein the instructionsare further configured to cause the general purpose computer to providea user with the ability to transfer the screen object to a programmableremote control unit.
 18. The remote control development program of claim17, wherein the instructions are further configured to cause the generalpurpose computer to provide a user with the ability to transfer thescreen object to the programmable remote control unit via a dockingstation that couples to the programmable remote control unit.
 19. Theremote control development program of claim 17, wherein each soft keycomprises a representation of a soft key that will be displayed on theprogrammable remote control unit.
 20. The remote control developmentprogram of claim 13, wherein the instructions are further configured tocause the general purpose computer to access one or more preconfiguredscreen objects.
 21. The remote control development program of claim 20,wherein the preconfigured screen objects are stored in a database of thegeneral purpose computer.
 22. The remote control development program ofclaim 13, wherein the instructions are further configured to cause thegeneral purpose computer to facilitate editing of the screen object byallowing the user to edit the tagnames for commands that are assigned tothe soft key objects.
 23. A method of editing one or more screen objectsfor downloading to a programmable remote control unit using a generalpurpose computer, the general purpose computer comprising a processor,an operating system, a short term memory, a long term memory, a graphicsdisplay and a user input device, the screen objects each comprising ascreen layout definition and at least one key object which is a soft keyobject, the screen object providing for a screen display and commandsassociated therewith, wherein each soft key object comprises arepresentation of a soft key, a location for displaying therepresentation of the soft key, and a tagname for a command which is tobe issued when the soft key is activated, the command comprising amessage which, when received by a given multimedia processing unit,causes the multimedia processing unit to alter a defined setting of themultimedia processing unit in a predictable manner, the methodcomprising: (a) the general purpose computer displaying a representatoinof the appearance of the screen object; (b) the general purpose computerdisplaying information regarding the screen object and the key objectsof the screen object; (c) the general purpose computer receiving userinput via object oriented tools for creating and editing soft keyobjects; (d) the general purpose computer displaying tagnames forcommands which may be assigned to soft key objects in the screen object;and (e) the general purpose computer receiving user selections ofcommands to assign to soft key objects in the screen object.
 24. Themethod of claim 23, wherein the at least one key object furthercomprises a programmable key object, the programmable key objectcomprising an identifier of one of plural programmable keys of theprogrammable remote control unit and a tagname for a command which is tobe issued when the identified programmable key is activated and whereinthe method additionally comprises the general purpose computerdisplaying tagnames for commands which may be assigned to programmablekey objects in the screen object and the general purpose computerreceiving user selections of commands to assign to programmable keyobjects in the screen object.
 25. The method of claim 23, additionallycomprising the general purpose computer simultaneously displayinginformation regarding the screen object and the key objects of thescreen object.
 26. The method of claim 23, additionally comprising thegeneral purpose computer downloading the screen object to theprogrammable remote control unit.
 27. The method of claim 26, whereinthe general purpose computer downloads the screen object to theprogrammable remote control unit via a docking station thatcommunicatively couples to the programmable remote control unit.
 28. Themethod of claim 27, additionally comprising the general purpose computeraccepting user input via object oriented tools for creating and editinga label to be displayed with the screen object.
 29. The method of claim28, wherein the label is associated with a soft key object of the screenobject.
 30. The method of claim 23, additionally comprising the generalpurpose computer accessing the screen object from one or morepreconfigured screen objects from a database.